<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/const_hweight.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/const_hweight.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0FTTV9HRU5FUklDX0JJVE9QU19DT05TVF9IV0VJR0hUX0hfXzA_"><span class="b">_ASM_GENERIC_BITOPS_CONST_HWEIGHT_H_</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0FTTV9HRU5FUklDX0JJVE9QU19DT05TVF9IV0VJR0hUX0hfXzA_"><span class="b">_ASM_GENERIC_BITOPS_CONST_HWEIGHT_H_</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="k">/*</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * Compile time versions of __arch_hweightN()</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> */</span>
<a name="7" /><span class="True">       7:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0OF8w"><span class="b">__const_hweight8</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span>        \
<a name="8" /><span class="True">       8:</span>       <span class="f">(</span>    <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">0</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="9" /><span class="True">       9:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="10" /><span class="True">      10:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">2</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="11" /><span class="True">      11:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">3</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="12" /><span class="True">      12:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">4</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="13" /><span class="True">      13:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">5</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="14" /><span class="True">      14:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">6</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span>    \
<a name="15" /><span class="True">      15:</span>     <span class="f">(</span><span class="f">!</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">7</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>    <span class="f">)</span>
<a name="16" /><span class="True">      16:</span> 
<a name="17" /><span class="True">      17:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MTZfMA__"><span class="b">__const_hweight16</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0OF8w"><span class="b">__const_hweight8</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span>  <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0OF8w"><span class="b">__const_hweight8</span></a><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span>  <span class="f">&gt;&gt;</span> <span class="c">8</span> <span class="f">)</span><span class="f">)</span>
<a name="18" /><span class="True">      18:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MzJfMA__"><span class="b">__const_hweight32</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MTZfMA__"><span class="b">__const_hweight16</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MTZfMA__"><span class="b">__const_hweight16</span></a><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&gt;&gt;</span> <span class="c">16</span><span class="f">)</span><span class="f">)</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0NjRfMA__"><span class="b">__const_hweight64</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MzJfMA__"><span class="b">__const_hweight32</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MzJfMA__"><span class="b">__const_hweight32</span></a><span class="f">(</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">&gt;&gt;</span> <span class="c">32</span><span class="f">)</span><span class="f">)</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <span class="k">/*</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> * Generic interface.</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> */</span>
<a name="24" /><span class="True">      24:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_aHdlaWdodDhfMA__"><span class="b">hweight8</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span>  <span class="f">(</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">?</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0OF8w"><span class="b">__const_hweight8</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span>  <span class="f">:</span> <span class="b">__arch_hweight8</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_aHdlaWdodDE2XzA_"><span class="b">hweight16</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">?</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MTZfMA__"><span class="b">__const_hweight16</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">:</span> <span class="b">__arch_hweight16</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="26" /><span class="True">      26:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_aHdlaWdodDMyXzA_"><span class="b">hweight32</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">?</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MzJfMA__"><span class="b">__const_hweight32</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">:</span> <span class="b">__arch_hweight32</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="27" /><span class="True">      27:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_aHdlaWdodDY0XzA_"><span class="b">hweight64</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">?</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0NjRfMA__"><span class="b">__const_hweight64</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">:</span> <span class="b">__arch_hweight64</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="28" /><span class="True">      28:</span> 
<a name="29" /><span class="True">      29:</span> <span class="k">/*</span>
<a name="30" /><span class="True">      30:</span> <span class="k"> * Interface for known constant arguments</span>
<a name="31" /><span class="True">      31:</span> <span class="k"> */</span>
<a name="32" /><span class="True">      32:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_SFdFSUdIVDhfMA__"><span class="b">HWEIGHT8</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span>  <span class="f">(</span><a href="cpu.c_macros_noref.html#_QlVJTERfQlVHX09OX1pFUk9fMA__"><span class="b">BUILD_BUG_ON_ZERO</span></a><span class="f">(</span><span class="f">!</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0OF8w"><span class="b">__const_hweight8</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="33" /><span class="True">      33:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_SFdFSUdIVDE2XzA_"><span class="b">HWEIGHT16</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_noref.html#_QlVJTERfQlVHX09OX1pFUk9fMA__"><span class="b">BUILD_BUG_ON_ZERO</span></a><span class="f">(</span><span class="f">!</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MTZfMA__"><span class="b">__const_hweight16</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_SFdFSUdIVDMyXzA_"><span class="b">HWEIGHT32</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_noref.html#_QlVJTERfQlVHX09OX1pFUk9fMA__"><span class="b">BUILD_BUG_ON_ZERO</span></a><span class="f">(</span><span class="f">!</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0MzJfMA__"><span class="b">__const_hweight32</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_SFdFSUdIVDY0XzA_"><span class="b">HWEIGHT64</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_noref.html#_QlVJTERfQlVHX09OX1pFUk9fMA__"><span class="b">BUILD_BUG_ON_ZERO</span></a><span class="f">(</span><span class="f">!</span><span class="b">__builtin_constant_p</span><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span> <span class="f">+</span> <a href="cpu.c_macros_ref.html#_X19jb25zdF9od2VpZ2h0NjRfMA__"><span class="b">__const_hweight64</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span><span class="f">)</span>
<a name="36" /><span class="True">      36:</span> 
<a name="37" /><span class="True">      37:</span> <span class="k">/*</span>
<a name="38" /><span class="True">      38:</span> <span class="k"> * Type invariant interface to the compile time constant hweight functions.</span>
<a name="39" /><span class="True">      39:</span> <span class="k"> */</span>
<a name="40" /><span class="True">      40:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_SFdFSUdIVF8w"><span class="b">HWEIGHT</span></a><span class="f">(</span><span class="b">w</span><span class="f">)</span>   <a href="cpu.c_macros_noref.html#_SFdFSUdIVDY0XzA_"><span class="b">HWEIGHT64</span></a><span class="f">(</span><span class="f">(</span><span class="b">u64</span><span class="f">)</span><span class="b">w</span><span class="f">)</span>
<a name="41" /><span class="True">      41:</span> 
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_GENERIC_BITOPS_CONST_HWEIGHT_H_ */</span>
<a name="43" /><span class="True">      43:</span> </pre>
  </body>
</html>
